草庐IT

Swift 枚举评估

全部标签

c# - 映射到 Nhibernate 中的枚举位标志

取下面的枚举标志[Flags]enumPermssions{CanComment=1,CanEdit=2,CanDelete=4,CanRemoveUsers=8,All=CanComment|CanEdit|CanDelete|CanRemoveUsers}在NHibernate中,我在使用之前映射到一个枚举:我的问题是,如何使用NHibnerate将按位字段映射到标志字段? 最佳答案 当我映射一个枚举,并且这个枚举有一个“int”类型的支持值时,我只是将我的枚举属性映射到数据库中的一个int字段。我没有遇到这个问题。我也为标志枚

使用 Json.Net : Error converting value to type 的 C# 枚举反序列化

我正在使用Json.NET序列化/反序列化一些JSONAPI。API响应有一些整数值映射到应用程序中定义的枚举。枚举是这样的:publicenumMyEnum{Type1,Type2,Type3}并且JSONAPI响应具有以下内容:{"Name":"abc","MyEnumValue":"Type1"}有时,API会为我的枚举中未定义的MyEnumValue字段返回一个值,如下所示:{"Name":"abc","MyEnumValue":"Type4"}抛出异常:Errorconvertingvalue"Type4"totype'MyEnum'有没有办法通过分配默认值或其他方法来避免应

c# - WPF ComboBox 中具有本地化名称的枚举

我有一个列出枚举的ComboBox。enumStatusEnum{Open=1,Closed=2,InProgress=3}我想用英文显示枚举值的本地化名称OpenClosedInProgress还有德语(以及future的其他语言)OffenGeschlossenInArbeit在我的ViewModel中使用publicIEnumerableStatusList{get{returnEnum.GetValues(typeof(StatusEnum)).Cast();}}只获取代码中枚举的名称,而不是翻译后的名称。我有一般本地化,可以使用即访问它们Resources.Strings.I

c# - 使用隐式枚举字段来表示数值是一种不好的做法吗?

使用隐式枚举字段来表示数值一定是一种不好的做法吗?这是一个用例:我想要一种简单的方法来表示十六进制数字,并且由于C#枚举基于整数,因此它们看起来很自然。我不喜欢char或string在这里,因为我必须明确验证它们的值。枚举的问题是数字[0-9]不是有效的字段标识符(有充分的理由)。我突然想到我不需要声明数字0-9,因为它们隐式存在。所以,我的十六进制数字枚举看起来像:publicenumHex:int{A=10,B=11,C=12,D=13,E=14,F=15}所以,我可以写Tupler=Tuple.Create(Hex.F,(Hex)1);,和r.Item1.ToString()+r

c# - C# 中的大型标志枚举

大家好,有一个简短的问题,我似乎找不到任何关于......我正在做一个需要带有大量标志(最多40个)的标志枚举的项目,我真的不想为每个枚举值输入确切的掩码:publicenumMyEnumeration:ulong{Flag1=1,Flag2=2,Flag3=4,Flag4=8,Flag5=16,//...Flag16=65536,Flag17=65536*2,Flag18=65536*4,Flag19=65536*8,//...Flag32=65536*65536,Flag33=65536*65536*2//rightabouthereIstarttogetreallypissedo

c# - 我如何分块可枚举?

我需要一个优雅的方法,它接受一个可枚举对象,并获取可枚举对象的可枚举对象,其中每个元素的数量都相同,但最后一个:publicstaticIEnumerable>Chunk(thisIEnumerablevalues,Int32chunkSize){//TODO:codethatchunks}这是我试过的:publicstaticIEnumerable>Chunk(thisIEnumerablevalues,Int32chunkSize){varcount=values.Count();varnumberOfFullChunks=count/chunkSize;varlastChunkS

c# - 降低字符串时解析枚举

我有一个非常有趣的问题,我不确定您是否可以使用这种方法来解决。我有一些字符串,都是小写的。我们就称它为商业法。现在,我有一个枚举类型,其值为BusinessLaw。我想做的是将businesslaw字符串转换为BusinessLaw枚举类型。通常我会这样做:return(EnumType)(Enum.Parse(typeof(EnumType),value));但是,当存在一些大小写差异时,这是不可能的。你会如何解决这个问题?还是天生无法解决? 最佳答案 您可以使用theoverloadofEnum.Parse最后一个参数表示区分大

c# - int 是枚举的支持类型

根据thispostint是enum的支持类型。当我检查.NET的源代码时System.Enum抽象类继承自System.ValueType抽象类。但是当我检查System.Int32结构它继承自接口(interface)而不是System.ValueType.相反,当我反编译mscorlib.dll并检查Int32结构时,它说该结构的基类型为System.ValueType.但仍然检查反编译的源代码,我看不到任何关于System.ValueType的信息。这让我觉得struct关键字使声明成为auto-Sytem.ValueType,Microsoft也在这个reference中表示

c# - 在带有空格的 ComboBox 中显示枚举

我有一个枚举,例如:enumMyEnum{My_Value_1,My_Value_2}与:comboBox1.DataSource=Enum.GetValues(typeof(MyEnum));但现在我的问题是:如何将“_”替换为“”,使其变为带空格而不是下划线的项目?而且数据绑定(bind)对象仍然作品 最佳答案 如果您有权访问Framework3.5,您可以执行以下操作:Enum.GetValues(typeof(MyEnum)).Cast().Select(e=>new{Value=e,Text=e.ToString().Re

c# - 枚举和减法运算符

有谁知道(也许:从什么时候开始)-=运算符在enum值上受支持?今天我正在愉快地编码,因为某种原因,我写了这个来从标志enum中排除一个值:flags-=FlagsEnum.Value1;在重新阅读和评估我的代码后,我很惊讶它编译后确实有效。将语句写成flags=flags-FlagsEnum.Value1但是不编译。到目前为止,我在文档和互联网上找不到任何内容。此外,不支持其他运算符(当然除了位运算符):+=(包括标志)、*=(Pascal中的交集)工作。这是C#编译器内置的语法糖吗?如果是这样,他们选择不包括其他运营商的原因是什么?一个简单的代码示例:usingSystem;usi